home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1995 February: Tool Chest / Dev.CD Feb 95 / Dev.CD Feb 95.toast / Tool Chest / Development Tools & Languages / Macintosh Common Lisp Related / interfaces / PInterface Translator / replacements / SANE.lisp next >
Encoding:
Text File  |  1993-09-16  |  11.1 KB  |  515 lines  |  [TEXT/CCL2]

  1.  
  2. (in-package :traps)             ; 
  3. ; Created: Friday, September 15, 1989 at 5:01 PM
  4. ;     SANE.p
  5. ;     Pascal Interface to the Macintosh Libraries
  6. ;     Copyright Apple Computer, Inc.    1985-1989
  7. ;     All rights reserved
  8.  
  9. ; $IFC UNDEFINED UsingIncludes
  10. ; $SETC UsingIncludes := 0
  11. ; $ENDC
  12.  
  13. ; $IFC NOT UsingIncludes
  14.  
  15. ; $ENDC
  16.  
  17. ; $IFC UNDEFINED UsingSANE
  18. ; $SETC UsingSANE := 1
  19.  
  20. ; $I+
  21. ; $SETC SANEIncludes := UsingIncludes
  22. ; $SETC UsingIncludes := 1
  23. ; $SETC UsingIncludes := SANEIncludes
  24.  
  25. ;  Elems881 mode set by -d Elems881=true on Pascal command line 
  26.  
  27. ; $IFC UNDEFINED Elems881
  28. ; $SETC Elems881 = FALSE
  29. ; $ENDC
  30.  
  31. ; $IFC OPTION(MC68881)
  32.  
  33. ; *======================================================================*
  34. ;  *    The interface specific to the MC68881 SANE library    *
  35. ;  *======================================================================*
  36.  
  37. #+mc68881
  38. (progn
  39. (defconstant $Inexact 8)
  40. (defconstant $DivByZero 16)
  41. (defconstant $Underflow 32)
  42. (defconstant $Overflow 64)
  43. (defconstant $Invalid 128)
  44. (defconstant $CurInex1 256)
  45. (defconstant $CurInex2 512)
  46. (defconstant $CurDivByZero 1024)
  47. (defconstant $CurUnderflow 2048)
  48. (defconstant $CurOverflow 4096)
  49. (defconstant $CurOpError 8192)
  50. (defconstant $CurSigNaN 16384)
  51. (defconstant $CurBSonUnor 32768)
  52. )
  53.  
  54. ; $ELSEC
  55.  
  56. ; *======================================================================*
  57. ;  *    The interface specific to the software SANE library    *
  58. ;  *======================================================================*
  59.  
  60. #-mc68881
  61. (progn
  62. (defconstant $Invalid 1)
  63. (defconstant $Underflow 2)
  64. (defconstant $Overflow 4)
  65. (defconstant $DivByZero 8)
  66. (defconstant $Inexact 16)
  67. (defconstant $IEEEDefaultEnv 0) ; IEEE-default floating-point environment constant
  68. )
  69. ; $ENDC
  70.  
  71. ; *======================================================================*
  72. ;  *    The common interface for the SANE library     *
  73. ;  *======================================================================*
  74.  
  75. (defconstant $DecStrLen 255)
  76. (defconstant $SigDigLen 20)     ; for 68K; use 28 in 6502 SANE
  77.  
  78. (def-mactype :relop (find-mactype :unsigned-byte))
  79.  
  80. (def-mactype :numclass (find-mactype :unsigned-byte))
  81.  
  82. (def-mactype :rounddir (find-mactype :unsigned-byte))
  83.  
  84. (def-mactype :roundpre (find-mactype :unsigned-byte))
  85.  
  86. (def-mactype :decimalkind (find-mactype :unsigned-byte))
  87.  
  88. ; $IFC OPTION(MC68881)
  89.  
  90. ; *======================================================================*
  91. ;  *    The interface specific to the MC68881 SANE library    *
  92. ;  *======================================================================*
  93. #+mc68881
  94. (progn
  95. (def-mactype :exception (find-mactype :signed-long))
  96.  
  97. (defrecord Environment 
  98.    (FPCR :signed-long)
  99.    (FPSR :signed-long)
  100.    )
  101.  
  102. (def-mactype :extended80 (find-mactype :array))
  103.  
  104. (defrecord TrapVector 
  105.    (Unordered :signed-long)
  106.    (Inexact :signed-long)
  107.    (DivByZero :signed-long)
  108.    (Underflow :signed-long)
  109.    (OpError :signed-long)
  110.    (Overflow :signed-long)
  111.    (SigNaN :signed-long)
  112.    )
  113. )
  114.  
  115. ; $ELSEC
  116.  
  117. ; *======================================================================*
  118. ; *  The interface specific to the software SANE library      *
  119. ; *======================================================================*
  120. #+mc68881
  121. (progn
  122. (def-mactype :exception (find-mactype :signed-integer))
  123.  
  124. (def-mactype :environment (find-mactype :signed-integer))
  125.  
  126. (def-mactype :extended96 (find-mactype :array))
  127.  
  128. (defrecord MiscHaltInfo 
  129.    (HaltExceptions :signed-integer)
  130.    (PendingCCR :signed-integer)
  131.    (PendingD0 :signed-long)
  132.    )
  133. )
  134. ; $ENDC
  135.  
  136. ; *======================================================================*
  137. ; *  The common interface for the SANE library    *
  138. ; *======================================================================*
  139.  
  140. (def-mactype :decstr (find-mactype :string))
  141.  
  142. (defrecord DecForm 
  143.   (filler1 :signed-byte)
  144.    (style :unsigned-byte)
  145.    (digits :signed-integer)
  146.    )
  147.  
  148. (defrecord Decimal
  149.   (filler1 :signed-byte)
  150.    (sgn :unsigned-byte)
  151.    (exp :signed-integer)
  152.    (sig (:string #$sigdiglen))
  153.    )
  154.  
  155. (def-mactype :cstrptr (find-mactype :pointer))
  156.  
  157. ; $IFC OPTION(MC68881)
  158.  
  159. ;  return IEEE default environment 
  160.  
  161. #| Not in ROM
  162. (deftrap _ieeedefaultenv nil
  163.    (:stack :signed-integer)
  164.    (:stack-trap #x0))
  165. |#
  166. #| Not in ROM
  167. (deftrap _settrapvector ((traps :trapvector))
  168.    nil
  169.    (:stack-trap #x0))
  170. |#
  171. #| Not in ROM
  172. (deftrap _gettrapvector ((traps (:pointer :trapvector)))
  173.    nil
  174.    (:stack-trap #x0))
  175. |#
  176. #| Not in ROM
  177. (deftrap _x96tox80 ((x extended))
  178.    (:stack (:array :signed-integer 5))
  179.    (:stack-trap #x0))
  180. |#
  181. #| Not in ROM
  182. (deftrap _x80tox96 ((x (:array :signed-integer 5)))
  183.    (:stack extended)
  184.    (:stack-trap #x0))
  185. |#
  186. #| Not in ROM
  187. (deftrap _sin ((x extended))
  188.    (:stack extended)
  189.    (:stack-trap #x0))
  190. |#
  191. #| Not in ROM
  192. (deftrap _cos ((x extended))
  193.    (:stack extended)
  194.    (:stack-trap #x0))
  195. |#
  196. #| Not in ROM
  197. (deftrap _arctan ((x extended))
  198.    (:stack extended)
  199.    (:stack-trap #x0))
  200. |#
  201. #| Not in ROM
  202. (deftrap _exp ((x extended))
  203.    (:stack extended)
  204.    (:stack-trap #x0))
  205. |#
  206. #| Not in ROM
  207. (deftrap _ln ((x extended))
  208.    (:stack extended)
  209.    (:stack-trap #x0))
  210. |#
  211. #| Not in ROM
  212. (deftrap _log2 ((x extended))
  213.    (:stack extended)
  214.    (:stack-trap #x0))
  215. |#
  216. #| Not in ROM
  217. (deftrap _ln1 ((x extended))
  218.    (:stack extended)
  219.    (:stack-trap #x0))
  220. |#
  221. #| Not in ROM
  222. (deftrap _exp2 ((x extended))
  223.    (:stack extended)
  224.    (:stack-trap #x0))
  225. |#
  226. #| Not in ROM
  227. (deftrap _exp1 ((x extended))
  228.    (:stack extended)
  229.    (:stack-trap #x0))
  230. |#
  231. #| Not in ROM
  232. (deftrap _tan ((x extended))
  233.    (:stack extended)
  234.    (:stack-trap #x0))
  235. |#
  236. #| Not in ROM
  237. (deftrap _gethaltvector nil
  238.    (:stack :signed-long)
  239.    (:stack-trap #x0))
  240. |#
  241. #| Not in ROM
  242. (deftrap _sethaltvector ((v :signed-long))
  243.    nil
  244.    (:stack-trap #x0))
  245. |#
  246. #| Not in ROM
  247. (deftrap _x96tox80 ((x (:array :signed-integer 6)))
  248.    (:stack extended)
  249.    (:stack-trap #x0))
  250. |#
  251. #| Not in ROM
  252. (deftrap _x80tox96 ((x extended))
  253.    (:stack (:array :signed-integer 6))
  254.    (:stack-trap #x0))
  255. |#
  256. #| Not in ROM
  257. (deftrap _log2 ((x extended))
  258.    (:stack extended)
  259.    (:stack-trap #x0))
  260. |#
  261. #| Not in ROM
  262. (deftrap _ln1 ((x extended))
  263.    (:stack extended)
  264.    (:stack-trap #x0))
  265. |#
  266. #| Not in ROM
  267. (deftrap _exp2 ((x extended))
  268.    (:stack extended)
  269.    (:stack-trap #x0))
  270. |#
  271. #| Not in ROM
  272. (deftrap _exp1 ((x extended))
  273.    (:stack extended)
  274.    (:stack-trap #x0))
  275. |#
  276. #| Not in ROM
  277. (deftrap _tan ((x extended))
  278.    (:stack extended)
  279.    (:stack-trap #x0))
  280. |#
  281. #| Not in ROM
  282. (deftrap _num2integer ((x extended))
  283.    (:stack :signed-integer)
  284.    (:stack-trap #x0))
  285. |#
  286. #| Not in ROM
  287. (deftrap _num2longint ((x extended))
  288.    (:stack :signed-long)
  289.    (:stack-trap #x0))
  290. |#
  291. #| Not in ROM
  292. (deftrap _num2real ((x extended))
  293.    (:stack real)
  294.    (:stack-trap #x0))
  295. |#
  296. #| Not in ROM
  297. (deftrap _num2double ((x extended))
  298.    (:stack double)
  299.    (:stack-trap #x0))
  300. |#
  301. #| Not in ROM
  302. (deftrap _num2extended ((x extended))
  303.    (:stack extended)
  304.    (:stack-trap #x0))
  305. |#
  306. #| Not in ROM
  307. (deftrap _num2comp ((x extended))
  308.    (:stack :comp)
  309.    (:stack-trap #x0))
  310. |#
  311. #| Not in ROM
  312. (deftrap _num2dec ((f :decform) (x extended) (d (:pointer :decimal)))
  313.    nil
  314.    (:stack-trap #x0))
  315. |#
  316. #| Not in ROM
  317. (deftrap _dec2num ((d :decimal))
  318.    (:stack extended)
  319.    (:stack-trap #x0))
  320. |#
  321. #| Not in ROM
  322. (deftrap _num2str ((f :decform) (x extended) (s (:pointer (:string decstrlen))))
  323.    nil
  324.    (:stack-trap #x0))
  325. |#
  326. #| Not in ROM
  327. (deftrap _str2num ((s (:string decstrlen)))
  328.    (:stack extended)
  329.    (:stack-trap #x0))
  330. |#
  331. #| Not in ROM
  332. (deftrap _str2dec ((s (:string decstrlen)) (index (:pointer :signed-integer)) (d (:pointer :decimal)) (validprefix (:pointer :boolean)))
  333.    nil
  334.    (:stack-trap #x0))
  335. |#
  336. #| Not in ROM
  337. (deftrap _cstr2dec ((s (:pointer :character)) (index (:pointer :signed-integer)) (d (:pointer :decimal)) (validprefix (:pointer :boolean)))
  338.    nil
  339.    (:stack-trap #x0))
  340. |#
  341. #| Not in ROM
  342. (deftrap _dec2str ((f :decform) (d :decimal) (s (:pointer (:string decstrlen))))
  343.    nil
  344.    (:stack-trap #x0))
  345. |#
  346. #| Not in ROM
  347. (deftrap _remainder ((x extended) (y extended) (quo (:pointer :signed-integer)))
  348.    (:stack extended)
  349.    (:stack-trap #x0))
  350. |#
  351. #| Not in ROM
  352. (deftrap _rint ((x extended))
  353.    (:stack extended)
  354.    (:stack-trap #x0))
  355. |#
  356. #| Not in ROM
  357. (deftrap _scalb ((n :signed-integer) (x extended))
  358.    (:stack extended)
  359.    (:stack-trap #x0))
  360. |#
  361. #| Not in ROM
  362. (deftrap _logb ((x extended))
  363.    (:stack extended)
  364.    (:stack-trap #x0))
  365. |#
  366. #| Not in ROM
  367. (deftrap _copysign ((x extended) (y extended))
  368.    (:stack extended)
  369.    (:stack-trap #x0))
  370. |#
  371. #| Not in ROM
  372. (deftrap _nextreal ((x real) (y real))
  373.    (:stack real)
  374.    (:stack-trap #x0))
  375. |#
  376. #| Not in ROM
  377. (deftrap _nextdouble ((x double) (y double))
  378.    (:stack double)
  379.    (:stack-trap #x0))
  380. |#
  381. #| Not in ROM
  382. (deftrap _nextextended ((x extended) (y extended))
  383.    (:stack extended)
  384.    (:stack-trap #x0))
  385. |#
  386. #| Not in ROM
  387. (deftrap _xpwri ((x extended) (i :signed-integer))
  388.    (:stack extended)
  389.    (:stack-trap #x0))
  390. |#
  391. #| Not in ROM
  392. (deftrap _xpwry ((x extended) (y extended))
  393.    (:stack extended)
  394.    (:stack-trap #x0))
  395. |#
  396. #| Not in ROM
  397. (deftrap _compound ((r extended) (n extended))
  398.    (:stack extended)
  399.    (:stack-trap #x0))
  400. |#
  401. #| Not in ROM
  402. (deftrap _annuity ((r extended) (n extended))
  403.    (:stack extended)
  404.    (:stack-trap #x0))
  405. |#
  406. #| Not in ROM
  407. (deftrap _randomx ((x (:pointer extended)))
  408.    (:stack extended)
  409.    (:stack-trap #x0))
  410. |#
  411. #| Not in ROM
  412. (deftrap _classreal ((x real))
  413.    (:stack :unsigned-byte)
  414.    (:stack-trap #x0))
  415. |#
  416. #| Not in ROM
  417. (deftrap _classdouble ((x double))
  418.    (:stack :unsigned-byte)
  419.    (:stack-trap #x0))
  420. |#
  421. #| Not in ROM
  422. (deftrap _classcomp ((x :comp))
  423.    (:stack :unsigned-byte)
  424.    (:stack-trap #x0))
  425. |#
  426. #| Not in ROM
  427. (deftrap _classextended ((x extended))
  428.    (:stack :unsigned-byte)
  429.    (:stack-trap #x0))
  430. |#
  431. #| Not in ROM
  432. (deftrap _signnum ((x extended))
  433.    (:stack :signed-integer)
  434.    (:stack-trap #x0))
  435. |#
  436. #| Not in ROM
  437. (deftrap _nan ((i :signed-integer))
  438.    (:stack extended)
  439.    (:stack-trap #x0))
  440. |#
  441. #| Not in ROM
  442. (deftrap _setexception ((e :signed-integer) (b :boolean))
  443.    nil
  444.    (:stack-trap #x0))
  445. |#
  446. #| Not in ROM
  447. (deftrap _testexception ((e :signed-integer))
  448.    (:stack :boolean)
  449.    (:stack-trap #x0))
  450. |#
  451. #| Not in ROM
  452. (deftrap _sethalt ((e :signed-integer) (b :boolean))
  453.    nil
  454.    (:stack-trap #x0))
  455. |#
  456. #| Not in ROM
  457. (deftrap _testhalt ((e :signed-integer))
  458.    (:stack :boolean)
  459.    (:stack-trap #x0))
  460. |#
  461. #| Not in ROM
  462. (deftrap _setround ((r :unsigned-byte))
  463.    nil
  464.    (:stack-trap #x0))
  465. |#
  466. #| Not in ROM
  467. (deftrap _getround nil
  468.    (:stack :unsigned-byte)
  469.    (:stack-trap #x0))
  470. |#
  471. #| Not in ROM
  472. (deftrap _setprecision ((p :unsigned-byte))
  473.    nil
  474.    (:stack-trap #x0))
  475. |#
  476. #| Not in ROM
  477. (deftrap _getprecision nil
  478.    (:stack :unsigned-byte)
  479.    (:stack-trap #x0))
  480. |#
  481. #| Not in ROM
  482. (deftrap _setenvironment ((e :signed-integer))
  483.    nil
  484.    (:stack-trap #x0))
  485. |#
  486. #| Not in ROM
  487. (deftrap _getenvironment ((e (:pointer :signed-integer)))
  488.    nil
  489.    (:stack-trap #x0))
  490. |#
  491. #| Not in ROM
  492. (deftrap _procentry ((e (:pointer :signed-integer)))
  493.    nil
  494.    (:stack-trap #x0))
  495. |#
  496. #| Not in ROM
  497. (deftrap _procexit ((e :signed-integer))
  498.    nil
  499.    (:stack-trap #x0))
  500. |#
  501. #| Not in ROM
  502. (deftrap _relation ((x extended) (y extended))
  503.    (:stack :unsigned-byte)
  504.    (:stack-trap #x0))
  505. |#
  506. ; $ENDC
  507.  
  508.  
  509. (export '($sigdiglen $decstrlen $ieeedefaultenv $inexact $divbyzero $overflow
  510.           $underflow $invalid $curbsonunor $cursignan $curoperror $curoverflow
  511.           $curunderflow $curdivbyzero $curinex2 $curinex1 $invalid $overflow
  512.           $underflow $divbyzero $inexact))
  513. (provide-interface 'SANE)